LockResource (kernel32)
Last changed: -87.61.63.34

.
Summary

C# Signature:

[DllImport("kernel32.dll")]
static extern IntPtr LockResource(IntPtr hResData);

User-Defined Types:

None.

Notes:

does not call SetLastError, according to MSDN.

Tips & Tricks:

this function returnes a pointer to the resource. you can use Marshal.Copy() to copy the data from the pointer to a managed array.

Sample Code:

      pResource = LockResource(hResource);
      if (hResource.ToInt32() == 0) {
    throw new ApplicationException("could not get pointer to file");
      }
      fileSizeComp = ((Module)mFiles[index]).CompSize;
      fileSizeUnComp = ((Module)mFiles[index]).Size;
      byte[] fileBuffComp = new byte[fileSizeComp + mOffset];//original buffer
      byte[] fileBuffUnComp = new byte[fileSizeUnComp + 1]; //uncompressed file
      //copy to managed memory:
      Marshal.Copy(pResource, fileBuffComp, 0, fileSizeComp + mOffset);

Alternative Managed API:

Do you know one? Please contribute it!

Documentation